package com.xyz.study.java.inner;

import java.util.Comparator;

/**
 * 内部类
 */
public class InnerClassTest {

    /**
     * 普通内部类
     */
    class Inner{
        /**
         * 普通内部类的静态域必须是 final 的
         */
        private static final String field = "";

        /**
         * 普通内部类不能有static方法
         * @return
         */
        public String getField(){
            return field;
        }


    }

    /**
     * 静态内部类
     */
    static class StaticInner{
        /**
         * 静态类内部类的静态域可以不是 final 的
         */
        private static String field = "";

        /**
         * 静态内部类可以有static方法
         * @return
         */
        public static String getField(){
            return field;
        }
    }

    public static void main(String[] args) {
        // 匿名内部类
        Comparator comparator = new Comparator() {
            @Override
            public int compare(Object o1, Object o2) {
                return 0;
            }
        };
        // 局部内部类
        class PartInner implements  Comparator{

            @Override
            public int compare(Object o1, Object o2) {
                return 0;
            }
        }

        PartInner partInner = new PartInner();
    }
}
